Programmable logic devices (PLDs) (e.g., field programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), field programmable systems on a chip (FPSCs), or other types of programmable devices) may be configured with various user designs to implement desired functionality. Typically, the user designs are synthesized and mapped into configurable resources (e.g., programmable logic gates, look-up tables (LUTs), embedded memories, embedded hardware, or other types of resources) and interconnections available in particular PLDs. Physical placement and routing for the synthesized and mapped user designs may then be determined to generate configuration data for the particular PLDs.
Many PLDs today include dedicated memory resources to facilitate efficient implementation of memory components such as random access memories (RAMs), read only memories (ROMs), and first-in first-out (FIFO) memories as may be needed in the user designs. Such dedicated memory resources, also referred to as embedded block RAMs (EBRs) or embedded memory blocks, are typically embedded in PLDs as one or more blocks of static RAM (SRAM), dynamic RAM (DRAM), and/or flash memory that can be configured together with other configurable resources of PLDs to implement memory components having desired functionalities.
For example, EBRs provided in some PLD implementations can be configured in one of a plurality of memory depth-width configurations available for EBRs. A user-specified memory (also referred to as a logical memory) in a user design may be mapped to and implemented by a plurality of EBRs if the user-specified memory does not fit within one EBR due to the size and available depth-width configurations of EBRs. However, the mapping of a user-specified memory to a plurality of EBRs by conventional memory mapping techniques may undesirably result in inefficient utilization of EBRs, for example, requiring more EBRs than it may be necessary and leaving unutilized portions in EBRs.
Embodiments of the present disclosure and their advantages are best understood by referring to the detailed description that follows. It should be appreciated that like reference numerals are used to identify like elements illustrated in one or more of the figures.